package NoP2P;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class RequisicaoMovimento extends Thread {
	 private ServerSocket socket1;
	 private final int port = 19887;
	 private Socket connection;

	 private boolean first;
	 private StringBuffer process;
	 public RequisicaoMovimento(){
	 }
	@Override
	public void run() {
		try {
			socket1 = new ServerSocket(port);
			int character;
			StringBuffer sb = new StringBuffer();
			int comando;
			String nomeArquivo;
			String nomeNo;
			while (true) {
		        connection = socket1.accept();

		        BufferedInputStream is = new BufferedInputStream(connection.getInputStream());
		        InputStreamReader isr = new InputStreamReader(is);
		        process = new StringBuffer();
		        isr.read(); //Por enquanto, o unico comando eh movimentacao
		        while((comando = isr.read()) != (int)'/'){
	    			sb.append((char) comando);
	    		}
	    		nomeArquivo = sb.toString();
	    		sb.delete(0, sb.length());
	    		while((comando = isr.read()) != (int)'/'){
	    			sb.append((char) comando);
	    		}
	    		nomeNo = sb.toString();
	    		sb.delete(0, sb.length());
	    		System.out.println("Solicitacao de movimetacao do servidor:");
	    		System.out.println("Arquivo: "+nomeArquivo+"Origem: "+nomeNo);
	    		ClienteNoP2P.lerArquivoDeServidor(nomeNo, nomeArquivo);
	    		long fimMovimentacao = System.currentTimeMillis();
	    		Arquivo.gerarLogTemporal("Movimentacao de arquivos entre nos",
	    				fimMovimentacao - ClienteNoP2P.inicioMovimentacao, null);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}
